#ifndef PROJECTILE_H
#define PROJECTILE_H

#include <allegro5\allegro5.h>
#include "Movables.h"
#include "GlobalVariables.h"
#include "Map.h"
#include "Point.h"
#include "Utilities.h"

/*!	\brief A derived class of Movables containing the implementation of the projectile fired by Dig Dug.

	The main responsibility of the class is the implementation of the projectiles movement and collision detection.
	The rules governing this are distinct from all other movable types.
*/

class Projectile: public Movables{

public:
	Projectile(Point& location); //constructor
	Projectile(){}

	virtual DetectionResult move(Map &map);	
	virtual void allowMove(Direction direction);

	//! Sets the projectile's status to not shooting
	void stopShot();
	bool isShooting(); //!< Get status of projectile. return true if projectile is shooting

private:
	bool _is_shooting;
	virtual DetectionResult collisionCheck(Movable_type position_type) const;
};

#endif